package net.office.bean;

import java.util.ArrayList;
import java.util.List;

public class ExpenseItemExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public ExpenseItemExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andExpenseItemIdIsNull() {
            addCriterion("expense_item_Id is null");
            return (Criteria) this;
        }

        public Criteria andExpenseItemIdIsNotNull() {
            addCriterion("expense_item_Id is not null");
            return (Criteria) this;
        }

        public Criteria andExpenseItemIdEqualTo(Integer value) {
            addCriterion("expense_item_Id =", value, "expenseItemId");
            return (Criteria) this;
        }

        public Criteria andExpenseItemIdNotEqualTo(Integer value) {
            addCriterion("expense_item_Id <>", value, "expenseItemId");
            return (Criteria) this;
        }

        public Criteria andExpenseItemIdGreaterThan(Integer value) {
            addCriterion("expense_item_Id >", value, "expenseItemId");
            return (Criteria) this;
        }

        public Criteria andExpenseItemIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("expense_item_Id >=", value, "expenseItemId");
            return (Criteria) this;
        }

        public Criteria andExpenseItemIdLessThan(Integer value) {
            addCriterion("expense_item_Id <", value, "expenseItemId");
            return (Criteria) this;
        }

        public Criteria andExpenseItemIdLessThanOrEqualTo(Integer value) {
            addCriterion("expense_item_Id <=", value, "expenseItemId");
            return (Criteria) this;
        }

        public Criteria andExpenseItemIdIn(List<Integer> values) {
            addCriterion("expense_item_Id in", values, "expenseItemId");
            return (Criteria) this;
        }

        public Criteria andExpenseItemIdNotIn(List<Integer> values) {
            addCriterion("expense_item_Id not in", values, "expenseItemId");
            return (Criteria) this;
        }

        public Criteria andExpenseItemIdBetween(Integer value1, Integer value2) {
            addCriterion("expense_item_Id between", value1, value2, "expenseItemId");
            return (Criteria) this;
        }

        public Criteria andExpenseItemIdNotBetween(Integer value1, Integer value2) {
            addCriterion("expense_item_Id not between", value1, value2, "expenseItemId");
            return (Criteria) this;
        }

        public Criteria andExpenseIdIsNull() {
            addCriterion("expense_Id is null");
            return (Criteria) this;
        }

        public Criteria andExpenseIdIsNotNull() {
            addCriterion("expense_Id is not null");
            return (Criteria) this;
        }

        public Criteria andExpenseIdEqualTo(Integer value) {
            addCriterion("expense_Id =", value, "expenseId");
            return (Criteria) this;
        }

        public Criteria andExpenseIdNotEqualTo(Integer value) {
            addCriterion("expense_Id <>", value, "expenseId");
            return (Criteria) this;
        }

        public Criteria andExpenseIdGreaterThan(Integer value) {
            addCriterion("expense_Id >", value, "expenseId");
            return (Criteria) this;
        }

        public Criteria andExpenseIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("expense_Id >=", value, "expenseId");
            return (Criteria) this;
        }

        public Criteria andExpenseIdLessThan(Integer value) {
            addCriterion("expense_Id <", value, "expenseId");
            return (Criteria) this;
        }

        public Criteria andExpenseIdLessThanOrEqualTo(Integer value) {
            addCriterion("expense_Id <=", value, "expenseId");
            return (Criteria) this;
        }

        public Criteria andExpenseIdIn(List<Integer> values) {
            addCriterion("expense_Id in", values, "expenseId");
            return (Criteria) this;
        }

        public Criteria andExpenseIdNotIn(List<Integer> values) {
            addCriterion("expense_Id not in", values, "expenseId");
            return (Criteria) this;
        }

        public Criteria andExpenseIdBetween(Integer value1, Integer value2) {
            addCriterion("expense_Id between", value1, value2, "expenseId");
            return (Criteria) this;
        }

        public Criteria andExpenseIdNotBetween(Integer value1, Integer value2) {
            addCriterion("expense_Id not between", value1, value2, "expenseId");
            return (Criteria) this;
        }

        public Criteria andExpenseItemTypeIsNull() {
            addCriterion("expense_item_type is null");
            return (Criteria) this;
        }

        public Criteria andExpenseItemTypeIsNotNull() {
            addCriterion("expense_item_type is not null");
            return (Criteria) this;
        }

        public Criteria andExpenseItemTypeEqualTo(String value) {
            addCriterion("expense_item_type =", value, "expenseItemType");
            return (Criteria) this;
        }

        public Criteria andExpenseItemTypeNotEqualTo(String value) {
            addCriterion("expense_item_type <>", value, "expenseItemType");
            return (Criteria) this;
        }

        public Criteria andExpenseItemTypeGreaterThan(String value) {
            addCriterion("expense_item_type >", value, "expenseItemType");
            return (Criteria) this;
        }

        public Criteria andExpenseItemTypeGreaterThanOrEqualTo(String value) {
            addCriterion("expense_item_type >=", value, "expenseItemType");
            return (Criteria) this;
        }

        public Criteria andExpenseItemTypeLessThan(String value) {
            addCriterion("expense_item_type <", value, "expenseItemType");
            return (Criteria) this;
        }

        public Criteria andExpenseItemTypeLessThanOrEqualTo(String value) {
            addCriterion("expense_item_type <=", value, "expenseItemType");
            return (Criteria) this;
        }

        public Criteria andExpenseItemTypeLike(String value) {
            addCriterion("expense_item_type like", value, "expenseItemType");
            return (Criteria) this;
        }

        public Criteria andExpenseItemTypeNotLike(String value) {
            addCriterion("expense_item_type not like", value, "expenseItemType");
            return (Criteria) this;
        }

        public Criteria andExpenseItemTypeIn(List<String> values) {
            addCriterion("expense_item_type in", values, "expenseItemType");
            return (Criteria) this;
        }

        public Criteria andExpenseItemTypeNotIn(List<String> values) {
            addCriterion("expense_item_type not in", values, "expenseItemType");
            return (Criteria) this;
        }

        public Criteria andExpenseItemTypeBetween(String value1, String value2) {
            addCriterion("expense_item_type between", value1, value2, "expenseItemType");
            return (Criteria) this;
        }

        public Criteria andExpenseItemTypeNotBetween(String value1, String value2) {
            addCriterion("expense_item_type not between", value1, value2, "expenseItemType");
            return (Criteria) this;
        }

        public Criteria andExpenseItemNameIsNull() {
            addCriterion("expense_item_name is null");
            return (Criteria) this;
        }

        public Criteria andExpenseItemNameIsNotNull() {
            addCriterion("expense_item_name is not null");
            return (Criteria) this;
        }

        public Criteria andExpenseItemNameEqualTo(String value) {
            addCriterion("expense_item_name =", value, "expenseItemName");
            return (Criteria) this;
        }

        public Criteria andExpenseItemNameNotEqualTo(String value) {
            addCriterion("expense_item_name <>", value, "expenseItemName");
            return (Criteria) this;
        }

        public Criteria andExpenseItemNameGreaterThan(String value) {
            addCriterion("expense_item_name >", value, "expenseItemName");
            return (Criteria) this;
        }

        public Criteria andExpenseItemNameGreaterThanOrEqualTo(String value) {
            addCriterion("expense_item_name >=", value, "expenseItemName");
            return (Criteria) this;
        }

        public Criteria andExpenseItemNameLessThan(String value) {
            addCriterion("expense_item_name <", value, "expenseItemName");
            return (Criteria) this;
        }

        public Criteria andExpenseItemNameLessThanOrEqualTo(String value) {
            addCriterion("expense_item_name <=", value, "expenseItemName");
            return (Criteria) this;
        }

        public Criteria andExpenseItemNameLike(String value) {
            addCriterion("expense_item_name like", value, "expenseItemName");
            return (Criteria) this;
        }

        public Criteria andExpenseItemNameNotLike(String value) {
            addCriterion("expense_item_name not like", value, "expenseItemName");
            return (Criteria) this;
        }

        public Criteria andExpenseItemNameIn(List<String> values) {
            addCriterion("expense_item_name in", values, "expenseItemName");
            return (Criteria) this;
        }

        public Criteria andExpenseItemNameNotIn(List<String> values) {
            addCriterion("expense_item_name not in", values, "expenseItemName");
            return (Criteria) this;
        }

        public Criteria andExpenseItemNameBetween(String value1, String value2) {
            addCriterion("expense_item_name between", value1, value2, "expenseItemName");
            return (Criteria) this;
        }

        public Criteria andExpenseItemNameNotBetween(String value1, String value2) {
            addCriterion("expense_item_name not between", value1, value2, "expenseItemName");
            return (Criteria) this;
        }

        public Criteria andExpenseItemUnitPriceIsNull() {
            addCriterion("expense_item_unit_price is null");
            return (Criteria) this;
        }

        public Criteria andExpenseItemUnitPriceIsNotNull() {
            addCriterion("expense_item_unit_price is not null");
            return (Criteria) this;
        }

        public Criteria andExpenseItemUnitPriceEqualTo(Double value) {
            addCriterion("expense_item_unit_price =", value, "expenseItemUnitPrice");
            return (Criteria) this;
        }

        public Criteria andExpenseItemUnitPriceNotEqualTo(Double value) {
            addCriterion("expense_item_unit_price <>", value, "expenseItemUnitPrice");
            return (Criteria) this;
        }

        public Criteria andExpenseItemUnitPriceGreaterThan(Double value) {
            addCriterion("expense_item_unit_price >", value, "expenseItemUnitPrice");
            return (Criteria) this;
        }

        public Criteria andExpenseItemUnitPriceGreaterThanOrEqualTo(Double value) {
            addCriterion("expense_item_unit_price >=", value, "expenseItemUnitPrice");
            return (Criteria) this;
        }

        public Criteria andExpenseItemUnitPriceLessThan(Double value) {
            addCriterion("expense_item_unit_price <", value, "expenseItemUnitPrice");
            return (Criteria) this;
        }

        public Criteria andExpenseItemUnitPriceLessThanOrEqualTo(Double value) {
            addCriterion("expense_item_unit_price <=", value, "expenseItemUnitPrice");
            return (Criteria) this;
        }

        public Criteria andExpenseItemUnitPriceIn(List<Double> values) {
            addCriterion("expense_item_unit_price in", values, "expenseItemUnitPrice");
            return (Criteria) this;
        }

        public Criteria andExpenseItemUnitPriceNotIn(List<Double> values) {
            addCriterion("expense_item_unit_price not in", values, "expenseItemUnitPrice");
            return (Criteria) this;
        }

        public Criteria andExpenseItemUnitPriceBetween(Double value1, Double value2) {
            addCriterion("expense_item_unit_price between", value1, value2, "expenseItemUnitPrice");
            return (Criteria) this;
        }

        public Criteria andExpenseItemUnitPriceNotBetween(Double value1, Double value2) {
            addCriterion("expense_item_unit_price not between", value1, value2, "expenseItemUnitPrice");
            return (Criteria) this;
        }

        public Criteria andExpenseItemNumIsNull() {
            addCriterion("expense_item_num is null");
            return (Criteria) this;
        }

        public Criteria andExpenseItemNumIsNotNull() {
            addCriterion("expense_item_num is not null");
            return (Criteria) this;
        }

        public Criteria andExpenseItemNumEqualTo(Integer value) {
            addCriterion("expense_item_num =", value, "expenseItemNum");
            return (Criteria) this;
        }

        public Criteria andExpenseItemNumNotEqualTo(Integer value) {
            addCriterion("expense_item_num <>", value, "expenseItemNum");
            return (Criteria) this;
        }

        public Criteria andExpenseItemNumGreaterThan(Integer value) {
            addCriterion("expense_item_num >", value, "expenseItemNum");
            return (Criteria) this;
        }

        public Criteria andExpenseItemNumGreaterThanOrEqualTo(Integer value) {
            addCriterion("expense_item_num >=", value, "expenseItemNum");
            return (Criteria) this;
        }

        public Criteria andExpenseItemNumLessThan(Integer value) {
            addCriterion("expense_item_num <", value, "expenseItemNum");
            return (Criteria) this;
        }

        public Criteria andExpenseItemNumLessThanOrEqualTo(Integer value) {
            addCriterion("expense_item_num <=", value, "expenseItemNum");
            return (Criteria) this;
        }

        public Criteria andExpenseItemNumIn(List<Integer> values) {
            addCriterion("expense_item_num in", values, "expenseItemNum");
            return (Criteria) this;
        }

        public Criteria andExpenseItemNumNotIn(List<Integer> values) {
            addCriterion("expense_item_num not in", values, "expenseItemNum");
            return (Criteria) this;
        }

        public Criteria andExpenseItemNumBetween(Integer value1, Integer value2) {
            addCriterion("expense_item_num between", value1, value2, "expenseItemNum");
            return (Criteria) this;
        }

        public Criteria andExpenseItemNumNotBetween(Integer value1, Integer value2) {
            addCriterion("expense_item_num not between", value1, value2, "expenseItemNum");
            return (Criteria) this;
        }

        public Criteria andExpenseItemTotalPriceIsNull() {
            addCriterion("expense_item_total_price is null");
            return (Criteria) this;
        }

        public Criteria andExpenseItemTotalPriceIsNotNull() {
            addCriterion("expense_item_total_price is not null");
            return (Criteria) this;
        }

        public Criteria andExpenseItemTotalPriceEqualTo(Double value) {
            addCriterion("expense_item_total_price =", value, "expenseItemTotalPrice");
            return (Criteria) this;
        }

        public Criteria andExpenseItemTotalPriceNotEqualTo(Double value) {
            addCriterion("expense_item_total_price <>", value, "expenseItemTotalPrice");
            return (Criteria) this;
        }

        public Criteria andExpenseItemTotalPriceGreaterThan(Double value) {
            addCriterion("expense_item_total_price >", value, "expenseItemTotalPrice");
            return (Criteria) this;
        }

        public Criteria andExpenseItemTotalPriceGreaterThanOrEqualTo(Double value) {
            addCriterion("expense_item_total_price >=", value, "expenseItemTotalPrice");
            return (Criteria) this;
        }

        public Criteria andExpenseItemTotalPriceLessThan(Double value) {
            addCriterion("expense_item_total_price <", value, "expenseItemTotalPrice");
            return (Criteria) this;
        }

        public Criteria andExpenseItemTotalPriceLessThanOrEqualTo(Double value) {
            addCriterion("expense_item_total_price <=", value, "expenseItemTotalPrice");
            return (Criteria) this;
        }

        public Criteria andExpenseItemTotalPriceIn(List<Double> values) {
            addCriterion("expense_item_total_price in", values, "expenseItemTotalPrice");
            return (Criteria) this;
        }

        public Criteria andExpenseItemTotalPriceNotIn(List<Double> values) {
            addCriterion("expense_item_total_price not in", values, "expenseItemTotalPrice");
            return (Criteria) this;
        }

        public Criteria andExpenseItemTotalPriceBetween(Double value1, Double value2) {
            addCriterion("expense_item_total_price between", value1, value2, "expenseItemTotalPrice");
            return (Criteria) this;
        }

        public Criteria andExpenseItemTotalPriceNotBetween(Double value1, Double value2) {
            addCriterion("expense_item_total_price not between", value1, value2, "expenseItemTotalPrice");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}